This application is based upon and claims priority from prior French Patent Application No. 98-12692, filed Oct. 9, 1998, the entire disclosure of which is herein incorporated by reference.
1. Field of the Invention
The present invention relates to displays, and more specifically to a method and circuit for improving the chromatics of digital on-screen displays overlaid on a video image by increasing the number of colors available to create the overlays.
2. Description of Related Art
A video image is formed by a sequence of lines of pixels. The pixels are elementary picture elements. In color television systems, each pixel is a carrier of luminance information and chrominance information that makes it possible to specify the luminosity and color of each image point. In the most commonly used television systems, the image develops according to a principle of horizontal scanning of the screen. Whether it is the NTSC television system, the PAL television system, or the SECAM television system, each image displayed results from the alternating display of two distinct partial images known as frames. In general, there is a first frame, which is known as an odd-parity frame, and a second frame which is known as an even-parity frame.
The very nature of television images (i.e., the interlacing of two partial images) gives rise to problems of image quality and flicker. In an extreme case, a line of black pixels on a white image background gives the human eye the unpleasant impression of appearing and disappearing, especially if this line is observed from a close distance. Furthermore, it is increasingly common to present on-screen displays (OSDs) that are overlaid on video images. Each pixel of an OSD is characterized by three values Y, U, and V that determine luminosity and color and a value MW for transparency. For example, OSDs are commonly used to provide a permanent or non-permanent indication of the progress of a sporting event, such as the score of a match. OSDs are also used by certain television channels to show their logo so as to indicate to the viewer the television channel that is being watched.
FIG. 1 shows a conventional structure for the code of an OSD. A binary train 10 containing the codes needed to display an OSD typically consists of three sets of bits that have different functions. A first set of bits 12 forms the OSD header. The OSD header 12 has information on the number of bits needed to define a pixel, and information on the coordinates of certain characteristic points of the OSD. A second set of bits 14 is used to define the panel of colors that will be used during the display of the OSD. All of the colors that will be used are stored in a memory known as a color look-up table (CLUT).
Generally, the CLUT is limited to 256 memory lines, with each memory line containing the values of the bits corresponding to a color programmed in a table through the second set of bits 14. The choice of the size of the color look-up table results from a compromise between the access speed of the table and the number of colors needed to provided accurate quality for the OSD. Additionally, a third set of bits 16 is formed by the addresses of the memory lines of the table of the available colors containing the appropriate color for each pixel of the OSD.
While flicker problems exist, in purely analog television pictures they are small as compared with the flicker phenomena that can appear when digital on-screen displays are presented on a video image background. In particular, the systematic attenuation of contrasts in video images, which is caused by the presence of cameras in the image generation cycle, is not encountered during the creation of an OSD. As a result, two patterns of colors that are distant from each other in the spectrum of visible frequencies may be juxtaposed. Thus, major contrasts may appear between two consecutive lines when digital on-screen displays are overlaid on the video image. Further, when an OSD is created, the background of the video image on which the OSD will be displayed is not generally known. Thus, in extreme cases, a blue OSD may be displayed when the background of the video image is red. Additionally, nothing prevents the designer of an OSD from juxtaposing two lines with high contrast with respect to each other in the OSD itself.
FIGS. 2a and 2b illustrate problems that can be encountered during the display of an OSD on a video image background. FIG. 2a shows a television screen 10 that is displaying an OSD 21 on a video image background 20. The OSD 21 shows a zone with a white background from which there emerges a thin black line with the width of a pixel. This is typically the case where the flicker effect is the most visible. Due to the interlacing of the even-parity and odd-parity frames, the thin black line 22 appears and disappears at a speed that is low enough for this phenomenon to be detected by the human eye.
FIG. 2b shows another problem related to the display of an OSD on a video image background. On the background of a video image 20, an OSD 21 is formed by a first pattern 24 that is displayed with the even-parity frame and a second pattern 25 that is displayed with the odd-parity frame. This gives an impression of flutter 26. More specifically, the OSD seems to rise and fall the amplitude of a pixel at a rate dictated by the refresh frequency of the frames of the image. This flutter problem has the same cause as the flicker problem. The phenomenon of flutter appears when the same image is displayed by the even-parity frame and by the odd-parity frame. Depending on the television system used, the even-parity frame appears every 1/25 seconds or every 1/30 seconds in alternation with the odd-parity frame. The human eye detects a flutter motion due to the appearance of the OSD alternately on one set of lines and then on the set of directly neighboring lines.
These phenomena of flicker and flutter are mainly perceived when long horizontal lines are displayed on the screen, which is frequent in OSDs. There are several conventional approaches to overcoming these problems of vertical transition in the definition of an image having one or more OSDs. For example, it is possible to apply mathematical filters that use the values of neighboring pixels and weighting to compute new values for these pixels. Furthermore, there are circuits that enable automatic detection of excessive color contrasts between succeeding lines. These circuits then automatically carry out the weighting operations associated with the appropriate mathematical filter.
To avoid the sudden transitions of color that give rise to the phenomena explained above, it is also possible to act on the transparency of the pixels of an OSD. This approach is applied to the lines or groups of lines that constitute the boundary zone between an OSD and a video image. When action is taken on a single boundary line between the OSD and the video image, the transparency of the pixel of the OSD is usually 50%. Thus, each pixel of the final image that is located on the boundary has a balanced contribution of the pixels of the video image and of the pixels of the OSD. When several successive lines of the boundary zone are concerned, the transparency of the pixels of the OSD increases when approaching the pixels of the video image.
FIG. 3 shows an example of such a technique. In FIG. 3, an OSD 30 is constituted by portions of pixel lines. Three first lines of the OSD L1, L2, and L3 have the same values Y, U, and V characterizing the luminance and chrominance of each pixel. These lines of pixels differ only by their transparency MW. By way of example, the transparency of the pixels of line L3 is about 25%, the transparency of the pixels of line L2 is about 50%, and the transparency of the pixels of line L1 is about 70%. These transitions are visible in a zone 31 that corresponds to a portion of the screen that is enlarged for clarity. The pixels of the OSD (symbolized by squares) gradually make way for the pixels of the video image (symbolized by circles) that appear through transparency.
This conventional image overlay makes it possible to limit the effects of flicker and flutter when displaying OSDs on a video image. When several lines of an OSD have the same values of the luminance and chrominance information and differ only in their transparency value, it is still necessary to store each of these values in the color look-up table. For example, if all three lines L1, L2, and L3 of the OSD 30 of FIG. 3 are red, it is necessary to store the values that enable the definition of this red color that is associated with the different transparencies for each line L1, L2, L3 in the color look-up table.
However, a color look-up table has a very small size. Generally, the memory capacity of the CLUT is limited to 256 colors, with each color being encoded by 30 bits (i.e., 8 bits for each value Y, U, and V, and 6 bits for the transparency MW). Thus, in the example described above, three memory lines of the OSD are occupied solely for the definition of red with different transparencies. The greater the action on the transparency of the pixels of an OSD, the more limited is the number of available colors. Therefore, the quality of an OSD is diminished.
In view of these drawbacks, it is an object of the present invention to overcome the above-mentioned drawbacks and to provide a method for improving the chromatics of OSDs on a video image. The number of colors available to create the OSD is increased while preserving the possibility of action on the transparency of each color. A programmable register plays a role in defining the transparency of a line of pixels of an OSD. Thus, the transparency of each pixel does not have to be stored in the color look-up table.
One embodiment of the present invention provides a method for forming an OSD for overlay on a video image. According to the method, colors that are to be used to display the OSD are stored in a color look-up table, and a coefficient of transparency is assigned to each line of pixels of the OSD before overlaying the OSD on the video image. In a preferred method, the colors are stored in the color look-up table as three significant values representing chrominance and luminance for each pixel of the OSD, and the assigned coefficients of transparency are stored in a programmable register.
Another embodiment of the present invention provides a device for forming an OSD for overlay on a video image. The device includes a color look-up table that stores a color for each pixel of the OSD, and a transparency programming register that assigns a transparency level to each line of pixels of the OSD. In one preferred embodiment, the transparency programming register has default values for the coefficients of transparency.
Other objects, features, and advantages of the present invention will become apparent from the following detailed description. It should be understood, however, that the detailed description and specific examples, while indicating preferred embodiments of the present invention, are given by way of illustration only and various modifications may naturally be performed without deviating from the present invention.